/** ==================================================================================== **/
/** 										Sidebar Controller							 **/
/** ==================================================================================== **/

/**
 * Funzioni per la gestione della sidebar
 */
BootApplication.controller('SidebarController', function ($scope, $window, $interval, windowManager,$location,$rootScope) {
	
	$scope.toggleGuide = function(){
		angular.element(".cfp-hotkeys-container").removeAttr("style").removeClass("fade").toggleClass("hidden");
	}
	/*$("#menuContainerDash").mousemove(function(e){
		var posX = e.clientX;
		var posY = e.clientY;
		var diffY = e.clientY - $(this).position().top;
		var diffX = e.clientX - $(this).position().left;
		var diffXInner = e.clientX - (($(this).width() / 2) + $(this).position().left);
		var diffYInner = e.clientY - (($(this).height() / 2) + $(this).position().top);
		$(this).find(".containerMenu").css("transform","rotateX("+ (diffYInner / 200 ) + "deg) rotateY("+ (diffXInner / 200 )+"deg)");
	}).mouseleave(function(){
		$(this).addClass("out");
	}).mouseenter(function(){
		$(this).removeClass("out");
	});
	 */
	/**
	 * Funzione che cattura l'evento di resize della finestra
	 * Ogni volta che viene ridimensionata la finestra devo ricalcolare il margine superiore del menu a cubotti.
	 */
	//angular.element($window).bind('resize', function(){
		/**
		 * Ricalcolo il margine superiore del menu in base all'altezza della finestra.
		 */
		//$scope.getMargin();
	//});
	
	/**
	 * Refresh time
	 */
	$interval(
		/**
		 * Aggiorna l'ora corrente nella sezione della sidebar bottom
		 */
		function() {
			var d = new Date();
			var h = $scope.addZero(d.getHours());
			var m = $scope.addZero(d.getMinutes());
			var s = $scope.addZero(d.getSeconds());
			angular.element("#clockDash").html(h + ":" + m + ":" + s);
		}, 1000);
	
	/**
	 * aggiunge uno 0 se un numero è minore di 10
	 */
	$scope.addZero = function(i) {
	    if (i < 10) i = "0" + i;
	    return i;
	}
	
	$scope.showPanelMobile = function(){
		angular.element("#dxFunction").toggleClass("open");
	}
	
	$scope.iconizeAll = function(){
		angular.forEach(angular.element(".wmWindow"), function(value, key) {
			angular.element(value).css("z-index", 1).addClass("hidden");
		});
	}
	
	/************************************************************************************/
	/**  							 GESTIONE MENU DASHBOARD			 			   **/
	/************************************************************************************/

	/**
	 * Gestione click del bottone che permette l'apertura e la chiusura della menu a tab.
	 */
	$scope.mainMenuBtn = function (){
		$rootScope.menuOpen = !$rootScope.menuOpen;
	}

	/************************************************************************************/
	/**  							 GESTIONE MENU A CUBOTTI			 			   **/
	/************************************************************************************/

	/**
	 * Gestione click del bottone che permette l'apertura e la chiusura della menu a cubotti.
	 */
	$scope.dashboardMegaMenu = function() {
		/** imposto se nascondere o mostrare il menu a cubotti **/
		$scope.mainMenuOpen = !$scope.mainMenuOpen;	
	}
	
	$scope.closeMegamenuDash = function() {
		/** imposto se nascondere o mostrare il menu a cubotti **/
		$scope.mainMenuOpen = !$scope.mainMenuOpen;	
	}
	
	/**
	 * Calcolo il margine superiore del menu a cubotti in base all'altezza della finestra.
	 */
	$scope.getMargin = function (){
		/** 
		 * Calcolo il margine superiore del menu in base all'altezza della finestra la prima volta che viene aperta la pagina 
		 */
		var mtop = angular.element($window).height() - angular.element(".menuBox").height();
		var defTop = ((mtop / 2) - 11);
		if(defTop < 0) defTop = 0;
		angular.element(".menuBox").css("margin-top", defTop + "px");	
	}
	
});